32.2 The Scripts

32.2.1 Create your R Script with all Functions

The functions script contains all the routines and functions that are being applied in your plugin. Create an R Script file in the folder ”scripts” and start with the following section to install the insensa package and devtools package (but only if not installed already).

 
if(!requireNamespace(”insensa”)) { 
  if(!requireNamespace(”devtools”)) { 
    install.packages(”devtools”) 
  } 
  devtools::install_bitbucket(”dbiber/rinsensa”) 
  loadNamespace(”insensa”) 
}

We wont explain here how to program scripts R but we will give you an overview of the functions implemented in the Insensa package and how to use them.

Some general useful functions are:

  • insensa::iget: installes packages, only if not already available! So you can execute this function every time without unnecessary repeated installations. You should prefer this function over the install.packages.
  • AddVar: Save a variable to be used in Insensa-GIS and other plugins.
  • isActive: TRUE if script got executed from within Insensa-GIS. Really helpful to predefine variables for testing.

The following functions allow you to access values either set or calculated by Insensa GIS and use them in your R Script:

  • getVar: Returns a global variable or default value if the variable does not exist.
  • getCurrentFile: Relevant for ”Option” and ”InfoReader”. Returns the absolute file path of the file that holds the Option or InfoReader.
  • getSourceFiles: Relevant for ”Connections”. Returns the sources files from Insensa GIS.
  • OutputFile: Relevant for ”Connections” and ”Options”. Returnsabsolute file path of the new file that will be created.

Help and details how to use each function can be accessed, as usual, through R with using ?getVar or help(getVar).

32.2.2 Create your R Script for the UI

The settings script is optional and defines the settings dialog within the Insensa GIS user interface. The following functions allow you to create a standardized dialogue but with a relatively high flexibility:

  • UiAddBoolean: Create a boolean input field (Checkbox)
  • UiAddNumeric: Create a numeric input field
  • uiAddInputCharacter: Create a character input field
  • UiAddDirectory:Create a directory selection field
  • UiAddFile: Create a file selection field
  • UiAddSelectOne: Create a select ONE input field
  • UiAddSelectMultiple: Create a select MULTIPLE input field
  • UiAddInputPassword: Create a password input field
  • UIAddTable: Create an editable table view
  • UiAddEvent: Add events to create an interactive Ui.